package cz.muni.fi.pa165.languageschool.service;

import cz.muni.fi.pa165.languageschool.dto.CourseTO;
import java.util.List;

/**
 * Interface of service for managing Course entities
 *
 * @author Marketa Trachtova (255498) marketa.tr(at)gmail.com, Michal Fučík
 * (395624) michal.fuca.fucik(at)gmail.com
 */
public interface CourseService {

    /**
     * Creates a single course
     *
     * @param course
     */
    void createCourse(CourseTO course);

    /**
     * Fetches all present courses
     *
     * @return list of courses
     */
    List<CourseTO> getAllCourses();

    /**
     * Gets one single Course specified by passed id
     *
     * @param id
     * @return
     */
    CourseTO getCourse(Long id);

    /**
     * Updates state of given Course within database
     *
     * @param course
     * @return course
     */
    void updateCourse(CourseTO course);

    /**
     * Deletes appropriate Course from database
     *
     * @param course
     */
    void deleteCourse(CourseTO course);
}
